Misfit Bolt Javascript Interface 
Thin wrapper around sandeepmistry/noble, that helps Misfit Bolt bulbs discovery, and allows turning them on/off and changing their color and brightness, as well as reading their currently set values.
Currently support setting color and brightness via RGBA and HSB.
Prerequisites
To connect to the Misfit Bolt, you need BLE capabilities.
See sandeepmistry/noble prerequisites for more details.
Setup
npm install misfit-bolt
API Methods
discover
Type static
Arguments
- callback (function, optional): function to be invoked once a Bolt is discovered. Takes a
Bolt
instance as first argument. - uuids (Array, optional): list of Bolt uuid to discover.
Returns
undefined
Example
Bolt.discover(function(bolt) {
}, ['29852E52-67A0-490A-BC55-7FAB809AD0C0']);
get
Type static
Arguments
- id (string): UUID of a Bolt.
Returns
<Bolt>
instance, if found.
Example
let bolt = Bolt.get('29852E52-67A0-490A-BC55-7FAB809AD0C0');
remove
Type static
Arguments
- id (string): UUID of a Bolt.
Returns
Bool
successfully removed
Example
Bolt.remove('29852E52-67A0-490A-BC55-7FAB809AD0C0');
connect
Type instance
Arguments
- callback (function)
Returns
instance
Example
bolt.connect(function() {
});
disconnect
Type instance
Arguments
- callback (function)
Returns
instance
Example
bolt.disconnect(function(){
});
on
Type instance
Arguments
- callback (function)
Returns
instance
Example
bolt.on(function(){
});
off
Type instance
Arguments
- callback (function)
Returns
instance
Example
bolt.off(function(){
});
get
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
String
type.
Returns
instance
Example
bolt.get(function(error, value) {
});
set
Type instance
Arguments
- value (String): value to set on bulb. Mostly in the form or RGBA. Also accepts
CLTMP 3200,0
or CLTMP 3200,1
(used to toggle on / off). Other undocumented formats might exist. - callback (function)
Returns
instance
Example
bolt.set("228,41,15,10", function(){
});
getRGBA
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
Array
type.
Returns
instance
Example
bolt.getRGBA(function(error, rgbaValue) {
});
setRGBA
Type instance
Arguments
- value (Array): value to set on bulb. Should be in the form of
[red, green, blue, alpha]
. - callback (function)
Returns
instance
Example
bolt.setRGBA([228,41,15,10], function(){
});
getHue
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
Integer
type.
Returns
instance
Example
bolt.getHue(function(error, hueValue) {
});
setHue
Type instance
Arguments
- value (Integer): value to set on bulb.
- callback (function)
Returns
instance
Example
bolt.setHue(12, function(){
});
getSaturation
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
Integer
type.
Returns
instance
Example
bolt.getSaturation(function(error, saturationValue) {
});
setSaturation
Type instance
Arguments
- value (Integer): value to set on bulb.
- callback (function)
Returns
instance
Example
bolt.setSaturation(12, function(){
});
getBrightness
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
Integer
type.
Returns
instance
Example
bolt.getBrightness(function(error, brightnessValue) {
});
setBrightness
Type instance
Arguments
- value (Integer): value to set on bulb.
- callback (function)
Returns
instance
Example
bolt.setBrightness(12, function(){
});
getState
Type instance
Arguments
- callback (function): function invoked when state is available. Return value of
Bool
type.
Returns
instance
Example
bolt.getState(function(error, state) {
});
setState
Type instance
Arguments
- callback (function): function invoked when state is set.
Returns
instance
Example
bolt.setState(true, function(error, state) {
});
Example
Bolt = require('.');
Bolt.discover(function(bolt) {
bolt.connect(function() {
var i = 0,
colors = [[228,41,15,10],
[216,62,36,10],
[205,55,56,10],
[211,27,76,10],
[166,18,97,10]];
setInterval(function(){
var color = colors[i++ % colors.length];
bolt.setRGBA(color, function(){
});
}, 500);
});
});
TODO
Notes